package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 员工花名册对象 rnx_roster
 *
 * @author ruoyi
 * @date 2022-04-28
 */
@Data
public class RnxRoster extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	private Long id;

	/**
	 * 序号
	 */
	@Excel(name = "序号")
	private Long serialNumber;

	/**
	 * 部门
	 */
	@Excel(name = "部门")
	private String department;

	/**
	 * 组别
	 */
	@Excel(name = "组别")
	private String uGroup;

	/**
	 * 职务
	 */
	@Excel(name = "职务")
	private String uPost;

	/**
	 * 姓名
	 */
	@Excel(name = "姓名")
	private String fullName;

	/**
	 * 工号
	 */
	@Excel(name = "工号")
	private String jobNumber;

	/**
	 * 性别 0:保密 1:男 2:女
	 */
	@Excel(name = "性别", readConverterExp="0=保密,1=男,2=女", dictType = "rnx_sys_gender")
	private Long gender;

	/**
	 * 在职状态
	 */
	@Excel(name = "在职状态", readConverterExp="1=在职,0=离职", dictType = "rnx_sys_work_state")
	private Long workState;

	/**
	 * 年龄
	 */
	@Excel(name = "年龄")
	private Long age;

	/**
	 * 身份证号
	 */
	@Excel(name = "身份证号")
	private String idNumber;

	/**
	 * 出生年月
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "出生年月", width = 30, dateFormat = "yyyy-MM-dd")
	private Date dateOfBirth;

	/**
	 * 婚姻 0:保密 1:已婚 2:未婚
	 */
	@Excel(name = "婚姻", readConverterExp="0=保密,1=已婚,2=未婚", dictType = "rnx_sys_marriage")
	private Long marriage;

	/**
	 * 民族
	 */
	@Excel(name = "民族")
	private String nation;

	/**
	 * 手机
	 */
	@Excel(name = "手机")
	private String mobilePhone;

	/**
	 * 入职时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "入职时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date entryDate;

	/**
	 * 转正时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "转正时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date regularTime;

	/**
	 * 已入职时间/月
	 */
	@Excel(name = "已入职时间/月")
	private Long mob;

	/**
	 * 是否试用期内 0:试用期结束 1:试用期内
	 */
	@Excel(name = "是否试用期内", readConverterExp="0=试用期结束,1=试用期内", dictType = "rnx_sys_mob_category")
	private Long mobCategory;

	/**
	 * 试用期薪资
	 */
	@Excel(name = "试用期薪资")
	private String probationSalary;

	/**
	 * 转正薪资
	 */
	@Excel(name = "转正薪资")
	private String regularSalary;

	/**
	 * 合同开始
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "合同开始", width = 30, dateFormat = "yyyy-MM-dd")
	private Date contractStart;

	/**
	 * 合同结束
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "合同结束", width = 30, dateFormat = "yyyy-MM-dd")
	private Date endOfContract;

	/**
	 * 是否合同有效期 0:正常合同期 1:超期
	 */
	@Excel(name = "是否合同有效期", readConverterExp="0=正常合同期,1=超期", dictType = "rnx_sys_contract_category")
	private Long contractCategory;

	/**
	 * 续签合同时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "续签合同时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date contractRenewalTime;

	/**
	 * 续约到期时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "续约到期时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date renewalExpirationTime;

	/**
	 * 学历 1:初中 2:高中 3:中专 4:大专 5:本科 6:研究生
	 */
	@Excel(name = "学历", readConverterExp="1=初中,2=高中,3=中专,4=大专,5=本科,6=研究生"
			, dictType = "rnx_sys_education")
	private Long education;

	/**
	 * 毕业院校
	 */
	@Excel(name = "毕业院校")
	private String universityOneIsGraduatedFrom;

	/**
	 * 专业
	 */
	@Excel(name = "专业")
	private String major;

	/**
	 * 毕业时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "毕业时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date graduationTime;

	/**
	 * 籍贯
	 */
	@Excel(name = "籍贯")
	private String nativePlace;

	/**
	 * 户口性质 1:农业户口 2:非农业户口(城镇户口(居民户口)、农村居民户口、集体户口等)
	 */
	@Excel(name = "户口性质", readConverterExp="1=农业户口,2=非农业户口"
			, dictType = "rnx_sys_nature_of_household_registration")
	private Long natureOfHouseholdRegistration;

	/**
	 * 户口所在地
	 */
	@Excel(name = "户口所在地")
	private String registeredResidence;

	/**
	 * 现住址
	 */
	@Excel(name = "现住址")
	private String currentAddress;

	/**
	 * 紧急联系人
	 */
	@Excel(name = "紧急联系人")
	private String emergencyContactName;

	/**
	 * 与本人关系
	 */
	@Excel(name = "与本人关系")
	private String relationshipWithMyself;

	/**
	 * 紧急联系人电话
	 */
	@Excel(name = "紧急联系人电话")
	private String emergencyContactNumber;

	/**
	 * 银行
	 */
	@Excel(name = "银行")
	private String bank;

	/**
	 * 开户行
	 */
	@Excel(name = "开户行")
	private String bankOfDeposit;

	/**
	 * 银行卡号
	 */
	@Excel(name = "银行卡号")
	private String bankCardNumber;

	/**
	 * 备注
	 */
	@Excel(name = "备注")
	private String remarks;

	/**
	 * 邮箱
	 */
	@Excel(name = "邮箱")
	private String mailbox;

	/**
	 * 证件有效期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "证件有效期", width = 30, dateFormat = "yyyy-MM-dd")
	private Date certificateValidity;

	/**
	 * 首次参加工作时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@Excel(name = "首次参加工作时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date firstWorkingTime;

	/**
	 * 政治面貌 1:群众 2:共青团员 3:中共预备党员 4:中共党员 5:其他
	 */
	@Excel(name = "政治面貌"
			, readConverterExp = "1=群众,2=共青团员,3=中共预备党员,4=中共党员,5=其他"
			, dictType = "rnx_sys_political_outlook"
	)
	private Long politicalOutlook;

}
